# (c) Copyright 2003-2008 Hewlett-Packard Development Company, L.P.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Author: Don Welch
#
__version__ = '4.0'
__title__ = 'Printer Cartridge Cleaning Utility'
__mod__ = 'hp-colorcal'
__doc__ = "Cartridge cleaning utility for HPLIP supported inkjet printers."
#Std Lib
import sys
import re
import getopt
import time
import operator
import os
# Local
from base.g import *
from base import device, utils, maint, tui, module
from prnt import cups
def CleanUIx(level):
global d
ok = tui.continue_prompt("Ready to perform level %d cleaning (Note: Wait for previous print to finish)." % level)
if ok:
timeout = 0
time.sleep(5)
try:
while True:
update_spinner()
try:
d.open()
except Error:
time.sleep(2)
timeout += 2
continue
if d.isIdleAndNoError():
break
time.sleep(1)
timeout += 1
if timeout > 45:
log.error("Timeout waiting for print to finish.")
sys.exit(0)
finally:
cleanup_spinner()
d.close()
return ok
def CleanUI1():
log.note("Please wait for page to complete printing before continuing.")
log.info("\nLevel 1 cleaning complete. If the printout looks OK, enter 'q' to quit or <enter> to do a level 2 cleaning.")
return CleanUIx(2)
def CleanUI2():
log.note("Please wait for page to complete printing before continuing.")
log.info("\nLevel 2 cleaning complete. If the printout looks OK, enter 'q' to quit or <enter> to do a level 3 cleaning.")
log.warn("Level 3 uses a lot of ink.")
return CleanUIx(3)
def CleanUI3():
log.info("\nLevel 3 cleaning complete. Check this page to see if the problem was fixed. If the test page was not printed OK, replace the print cartridge(s).")
try:
mod = module.Module(__mod__, __title__, __version__, __doc__, None,